import numpy as np
import matplotlib.pyplot as plt
from pylab import *

# 正余弦图
# X = np.linspace(-2*np.pi,2*np.pi,100,endpoint=True)
# C,S = np.cos(X), np.sin(X)
# print(len(C))
# print(type(S))
#
# plt.plot(X,C)
# plt.plot(X,S)
#
# plt.show()

# np数组图
# a = np.array([2,3,4,5,2,3,5,2])
# print(a)
# plt.plot(a)
# plt.show()


# 详细配置
# 创建一个 8 * 6 点（point）的图，并设置分辨率为 80
figure(figsize=(10, 6), dpi=80)
# 创建一个新的 1 * 1 的子图，接下来的图样绘制在其中的第 1 块（也是唯一的一块）
subplot(1, 1, 1)
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)

# 设置图片边界
xmin, xmax = X.min(), X.max()
ymin, ymax = S.min(), S.max()

xlim(xmin * 1.1, xmax * 1.1)
ylim(ymin * 1.1, ymax * 1.1)

# 设置记号
# xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])
# yticks([-1,0,1])

# 设置自定义的标签
xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
       [r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])

yticks([-1, 0, +1],
       [r'$-1$', r'$0$', r'$+1$'])

# 移动脊柱(把图放中间)
ax = gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

# 绘制余弦曲线，使用蓝色的、连续的、宽度为 1 （像素）的线条
plot(X, C, color="blue", linewidth=2.5, linestyle="-", label='cosine')

# 绘制正弦曲线，使用绿色的、连续的、宽度为 1 （像素）的线条
plot(X, S, color="green", linewidth=2.5, linestyle="-", label='sine')

# xlim(-4.0,4.0)
# ylim(-1.0,1.0)

# 设置横轴记号(刻度点的多少)
# xticks(np.linspace(-4,4,9,endpoint=True))
# 设置纵轴记号
# yticks(np.linspace(-1,1,5,endpoint=True))

# 以分辨率 72 来保存图片
# savefig("exercice_2.png",dpi=72)

# 图例添加位置
legend(loc='upper left')

# 在屏幕上显示
show()
